﻿namespace WMS6.Web.CommonMethodServiceRef
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Runtime.CompilerServices;
    using System.Runtime.Serialization;

    [Serializable, DebuggerStepThrough, DataContract(Name="AppRegInfo", Namespace="http://schemas.datacontract.org/2004/07/WMS6.DataEntity"), GeneratedCode("System.Runtime.Serialization", "3.0.0.0")]
    public class AppRegInfo : IExtensibleDataObject, INotifyPropertyChanged
    {
        [OptionalField]
        private DateTime ExpiryDateField;
        [NonSerialized]
        private ExtensionDataObject extensionDataField;
        [OptionalField]
        private string MacCodeField;
        [OptionalField]
        private string MacCodeRegField;
        [OptionalField]
        private string RegIDField;
        [OptionalField]
        private DateTime TodayField;
        [OptionalField]
        private int UserCountField;
        [OptionalField]
        private int UserLimitField;
        [OptionalField]
        private int WarehouseCountField;
        [OptionalField]
        private int WarehouseLimitField;

        public event PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if (propertyChanged != null)
            {
                propertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        [DataMember]
        public DateTime ExpiryDate
        {
            get
            {
                return this.ExpiryDateField;
            }
            set
            {
                if (!this.ExpiryDateField.Equals(value))
                {
                    this.ExpiryDateField = value;
                    this.RaisePropertyChanged("ExpiryDate");
                }
            }
        }

        [Browsable(false)]
        public ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [DataMember]
        public string MacCode
        {
            get
            {
                return this.MacCodeField;
            }
            set
            {
                if (!object.ReferenceEquals(this.MacCodeField, value))
                {
                    this.MacCodeField = value;
                    this.RaisePropertyChanged("MacCode");
                }
            }
        }

        [DataMember]
        public string MacCodeReg
        {
            get
            {
                return this.MacCodeRegField;
            }
            set
            {
                if (!object.ReferenceEquals(this.MacCodeRegField, value))
                {
                    this.MacCodeRegField = value;
                    this.RaisePropertyChanged("MacCodeReg");
                }
            }
        }

        [DataMember]
        public string RegID
        {
            get
            {
                return this.RegIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.RegIDField, value))
                {
                    this.RegIDField = value;
                    this.RaisePropertyChanged("RegID");
                }
            }
        }

        [DataMember]
        public DateTime Today
        {
            get
            {
                return this.TodayField;
            }
            set
            {
                if (!this.TodayField.Equals(value))
                {
                    this.TodayField = value;
                    this.RaisePropertyChanged("Today");
                }
            }
        }

        [DataMember]
        public int UserCount
        {
            get
            {
                return this.UserCountField;
            }
            set
            {
                if (!this.UserCountField.Equals(value))
                {
                    this.UserCountField = value;
                    this.RaisePropertyChanged("UserCount");
                }
            }
        }

        [DataMember]
        public int UserLimit
        {
            get
            {
                return this.UserLimitField;
            }
            set
            {
                if (!this.UserLimitField.Equals(value))
                {
                    this.UserLimitField = value;
                    this.RaisePropertyChanged("UserLimit");
                }
            }
        }

        [DataMember]
        public int WarehouseCount
        {
            get
            {
                return this.WarehouseCountField;
            }
            set
            {
                if (!this.WarehouseCountField.Equals(value))
                {
                    this.WarehouseCountField = value;
                    this.RaisePropertyChanged("WarehouseCount");
                }
            }
        }

        [DataMember]
        public int WarehouseLimit
        {
            get
            {
                return this.WarehouseLimitField;
            }
            set
            {
                if (!this.WarehouseLimitField.Equals(value))
                {
                    this.WarehouseLimitField = value;
                    this.RaisePropertyChanged("WarehouseLimit");
                }
            }
        }
    }
}

